#include<iostream>
using namespace std;
#include<unistd.h>
#include<cassert>
#include<string>
#include<vector>


#define NUM_PIPE 5

//定义子进程要处理的任务
#define void(Func_t)()

void Loadtask(){
    cout<<"下载任务"<<endl;
    sleep(1);
}

void IOtask(){
    cout<<"iO任务"<<endl;
    sleep(1);
}

void flushtask(){
    cout<<"刷新任务"<<endl;
    sleep(1);
}


//定义一个类来存放父进程的写端和子进程的pid
class subEp{
    public:
    subEp(const pid_t& pid,const int writefd):
    _subpid(pid),_writeFd(writefd){

    }
    public:
    static int cnt;//记录每一条指令的编号
    string _name;//发送指令的名称
    int _writeFd;//父进程写端的fd
    pid_t _subpid;//子进程的pid
};
int subEp::cnt = 0;



int main(){
    //创建5个子进程来接受命令
    for(int i = 0;i< NUM_PIPE;i++){
        //1:创建父子进程通信的管道文件
        int fds[2];
        int n = pipe(fds);
        assert(n == 0);
        (void)n;

        //2:
        pid_t id = fork();
        if(id == 0){
            //子进程：读取数据
            close(fds[1]);
            



            sleep(1);
            exit(0);
        }

        //父进程:写入命令
        close(fds[0]);

    }



    //走到这里就是父进程，用来控制子进程


    return 0;
}